// index.js
// 获取应用实例
const app = getApp()
const {
  GetIndex,
  GetClassify,
  PostIndex,
  PostFaddish,
  PostInsane,
  PostPingtuan,
  PostGoodsList,
  Getnotice
} = require('../../http/api.js')
Page({
  data: {
    bannerData: [], //轮播
    classifyData: [], //分类
    miaosha: true,
    PostIndexData: [], //限时秒杀商品
    recommendStatus: 1, //爆款推荐
    recomData: [], //爆款推荐商品
    kanjia: true, //砍价
    kanjiaData: [], //砍价商品
    pingtuan: true, //全民拼团
    pingtuanData: [], //全民拼团商品
    PostGoodsData: [], //商品列表
    value: '', //搜索内容
    pageInfo: {
      page: 1,
      pageSize: 8
    },
    //控制由于网速原因，后台数据没有返回，不请求新的商品列表的开关  true代表可以请求
    isLoadingOk: true,
    //false代表没有到底部
    isHashGoodsData: false,
  },
  // 事件处理函数
  notice() { //优惠咨询跳转
    wx.navigateTo({
      url: '/pages/notice/show',
    })
  },
  list(e) {
    let id = e.target.dataset.id
    console.log(id);
    wx.navigateTo({
      url: `/pages/goods-details/index?id=${id}`,
    })
  },
  //搜索点击
  inp() {
    wx.navigateTo({
      url: "/pages/search/index",
    })
  },
  //上装
  fen(e) {
    console.log(e);
    const {
      id,
      index
    } = e.currentTarget.dataset
    wx.reLaunch({
      url: `/pages/category/category?id=${id}&&index=${index}`,
    })
  },
  onLoad: function (options) {

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  /**
   * 生命周期函数--监听页面显示
   */

  onShow: function () {
    //轮播图
    GetIndex().then(res => {
      console.log(res);
      this.setData({
        bannerData: res.data
      })
      // console.log(this.data.bannerData);
    })
    //分类
    GetClassify().then(res => {
      console.log(res);
      this.setData({
        classifyData: res.data
      })
    })
    //商品列表
    PostIndex(this.data.miaosha).then(res => {
      console.log(res);
      this.setData({
        PostIndexData: res.data.result
      })
    })
    //爆款商品
    PostFaddish(this.data.recommendStatus).then(res => {
      console.log(res);
      this.setData({
        recomData: res.data.result
      })
    })
    //砍价
    PostInsane(this.data.kanjia).then(res => {
      console.log(res);
      this.setData({
        kanjiaData: res.data.result
      })
    })
    //全民拼团
    PostPingtuan(this.data.pingtuan).then(res => {
      console.log(res);
      this.setData({
        pingtuanData: res.data.result
      })
    })
    //调用商品列表方法
    this.getGoodsList()

  },
  //商品列表
  getGoodsList() {
    //先为false，表示还没返回
    this.data.isLoadingOk = false
    PostGoodsList(this.data.pageInfo).then(res => {
      console.log(res);
      if (res.code === 0) {
        this.data.isLoadingOk = true
        let Post = res.data.result
        let PostGoodsData = Post.reverse()
        //合并数组将新返回的8条数据合并给当前已渲染的商品列表数组
        this.data.PostGoodsData = this.data.PostGoodsData.concat(res.data.result)
        this.setData({
          PostGoodsData:this.data.PostGoodsData
        })
      } else if (res.code === 700) {
        this.setData({
          isHashGoodsData: true
        })
      }

    })
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    //判断如果请求成功，再加载
    if(this.data.isLoadingOk) {
      this.data.pageInfo.page++
  
      this.getGoodsList()
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  getUserInfo(e) {
    // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
    console.log(e)
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})